Module: RDoc

Defined in:
lib/rdoc.rb,
lib/rdoc/version.rb,
lib/rdoc/known_classes.rb,
lib/rdoc/rubygems_hook.rb

Overview

This class is referenced by RubyGems to create documents. All implementations are moved to the above RubyGemsHook.

This class does nothing when this RDoc is installed as a normal gem or a bundled gem.

This class does generate/remove documents for compatibility when this RDoc is installed as a default gem.

We can remove this when all maintained RubyGems remove ‘rubygems/rdoc.rb`.

Defined Under Namespace

Modules: Encoding, Generator, I18n, RI, Text, TokenStream Classes: Alias, AnonClass, AnyMethod, Attr, ClassModule, CodeObject, Comment, Constant, Context, CrossReference, ERBIO, ERBPartial, Error, Extend, GhostMethod, Include, Markdown, Markup, MetaMethod, MethodAttr, Mixin, NormalClass, NormalModule, Options, Parser, RD, RDoc, Require, RubyGemsHook, RubygemsHook, Servlet, SingleClass, Stats, Store, Task, TomDoc, TopLevel

Constant Summary collapse

VISIBILITIES =

Method visibilities

[:public, :protected, :private]
DOT_DOC_FILENAME =

Name of the dotfile that contains the description of files to be processed in the current directory

".document"
GENERAL_MODIFIERS =

General RDoc modifiers

%w[nodoc].freeze
CLASS_MODIFIERS =

RDoc modifiers for classes

GENERAL_MODIFIERS
ATTR_MODIFIERS =

RDoc modifiers for attributes

GENERAL_MODIFIERS
CONSTANT_MODIFIERS =

RDoc modifiers for constants

GENERAL_MODIFIERS
METHOD_MODIFIERS =

RDoc modifiers for methods

GENERAL_MODIFIERS +
%w[arg args yield yields notnew not-new not_new doc]
VERSION =

RDoc version you are using

'6.9.0'
KNOWN_CLASSES =

Ruby’s built-in classes, modules and exceptions

{
  "rb_cArray"            => "Array",
  "rb_cBasicObject"      => "BasicObject",
  "rb_cBignum"           => "Bignum",
  "rb_cClass"            => "Class",
  "rb_cData"             => "Data",
  "rb_cDir"              => "Dir",
  "rb_cEncoding"         => "Encoding",
  "rb_cFalseClass"       => "FalseClass",
  "rb_cFile"             => "File",
  "rb_cFixnum"           => "Fixnum",
  "rb_cFloat"            => "Float",
  "rb_cHash"             => "Hash",
  "rb_cIO"               => "IO",
  "rb_cInteger"          => "Integer",
  "rb_cModule"           => "Module",
  "rb_cNilClass"         => "NilClass",
  "rb_cNumeric"          => "Numeric",
  "rb_cObject"           => "Object",
  "rb_cProc"             => "Proc",
  "rb_cRange"            => "Range",
  "rb_cRefinement"       => "Refinement",
  "rb_cRegexp"           => "Regexp",
  "rb_cRubyVM"           => "RubyVM",
  "rb_cSocket"           => "Socket",
  "rb_cString"           => "String",
  "rb_cStruct"           => "Struct",
  "rb_cSymbol"           => "Symbol",
  "rb_cThread"           => "Thread",
  "rb_cTime"             => "Time",
  "rb_cTrueClass"        => "TrueClass",

  "rb_eArgError"         => "ArgumentError",
  "rb_eEOFError"         => "EOFError",
  "rb_eException"        => "Exception",
  "rb_eFatal"            => "fatal",
  "rb_eFloatDomainError" => "FloatDomainError",
  "rb_eIOError"          => "IOError",
  "rb_eIndexError"       => "IndexError",
  "rb_eInterrupt"        => "Interrupt",
  "rb_eLoadError"        => "LoadError",
  "rb_eNameError"        => "NameError",
  "rb_eNoMemError"       => "NoMemoryError",
  "rb_eNotImpError"      => "NotImplementedError",
  "rb_eRangeError"       => "RangeError",
  "rb_eRuntimeError"     => "RuntimeError",
  "rb_eScriptError"      => "ScriptError",
  "rb_eSecurityError"    => "SecurityError",
  "rb_eSignal"           => "SignalException",
  "rb_eStandardError"    => "StandardError",
  "rb_eSyntaxError"      => "SyntaxError",
  "rb_eSystemCallError"  => "SystemCallError",
  "rb_eSystemExit"       => "SystemExit",
  "rb_eTypeError"        => "TypeError",
  "rb_eZeroDivError"     => "ZeroDivisionError",

  "rb_mComparable"       => "Comparable",
  "rb_mEnumerable"       => "Enumerable",
  "rb_mErrno"            => "Errno",
  "rb_mFConst"           => "File::Constants",
  "rb_mFileTest"         => "FileTest",
  "rb_mGC"               => "GC",
  "rb_mKernel"           => "Kernel",
  "rb_mMath"             => "Math",
  "rb_mProcess"          => "Process"
}

Class Method Summary collapse

Class Method Details

.homeObject

Searches and returns the directory for settings.

  1. $HOME/.rdoc directory, if it exists.

  2. The rdoc directory under the path specified by the XDG_DATA_HOME environment variable, if it is set.

  3. $HOME/.local/share/rdoc directory.

Other than the home directory, the containing directory will be created automatically.



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'lib/rdoc.rb', line 132

def self.home
  rdoc_dir = begin
              File.expand_path('~/.rdoc')
            rescue ArgumentError
            end

  if File.directory?(rdoc_dir)
    rdoc_dir
  else
    require 'fileutils'
    begin
      # XDG
      xdg_data_home = ENV["XDG_DATA_HOME"] || File.join(File.expand_path("~"), '.local', 'share')
      unless File.exist?(xdg_data_home)
        FileUtils.mkdir_p xdg_data_home
      end
      File.join xdg_data_home, "rdoc"
    rescue Errno::EACCES
    end
  end
end

.load_yamlObject

Loads the best available YAML library.



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/rdoc.rb', line 105

def self.load_yaml
  begin
    gem 'psych'
  rescue NameError => e # --disable-gems
    raise unless e.name == :gem
  rescue Gem::LoadError
  end

  begin
    require 'psych'
  rescue ::LoadError
  ensure
    require 'yaml'
  end
end